// 添加请求拦截器
const axios = require("axios");

axios.defaults.baseURL = 'http://localhost/api';     // 设置请求后端的URL地址
axios.defaults.timeout = 10000;                       // axios请求超时时间
axios.defaults.withCredentials = true;
axios.defaults.headers['Content-Type'] = 'application/json';       // axios发送数 据时使用json格式
axios.defaults.transformRequest = data => JSON.stringify(data);    // 发送数据前进 行json格式化

// http request拦截器 添加一个请求拦截器
axios.interceptors.request.use(function (config) {
    // Do something before request is sent
    //window.localStorage.getItem("accessToken") 获取token的value
    //将token放到请求头发送给服务器,将tokenkey放在请求头中
    //console.log(window.localStorage.getItem("Authorization"))
    if(window.localStorage.getItem("token")){
        config.headers.token = 'Bearer ' + window.localStorage.getItem("token")
        //也可以这种写法
        // config.headers['accessToken'] = Token;
    }
    return config;
}, error => {
    // Do something with request error
    this.$message.error('请求超时');
    return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
        if (response.data.code === 105) { // 未登录或登录超时
            this.$message.error('登录超时');
            // } else if (response.data.code ===110) {
            //     return Promise.reject(new Error('系统错误'))
        } else { //接口正常，返回数据
            return response;
        }
    },
    error => {
        if (error.message) {
            //this.$massage.error('服务器开小差了，请稍后再试!')
            //错误响应
            this.$message.error('服务器开小差了，请稍后再试!');
        }
        return Promise.reject(error);
    });

export default axios
